package com.ruoyi.classperformance.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生课堂现记录对象 classperformance
 * 
 * @author dongyv
 * @date 2025-05-15
 */
public class Classperformance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 表现记录ID */
    private Long performanceId;

    /** 教学班ID */
    @Excel(name = "教学班ID")
    private String classId;

    /** 学生学号 */
    @Excel(name = "学生学号")
    private String studentId;

    /** 上课日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上课日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sessionDate;

    /** 出勤状态(出勤/迟到/早退/缺勤) */
    @Excel(name = "出勤状态(出勤/迟到/早退/缺勤)")
    private String attendanceStatus;

    /** 回答问题次数 */
    @Excel(name = "回答问题次数")
    private Long questionCount;

    /** 回答正确次数 */
    @Excel(name = "回答正确次数")
    private Long correctCount;

    /** 课堂参与评分 */
    @Excel(name = "课堂参与评分")
    private BigDecimal participationScore;

    /** 课堂表现备注 */
    @Excel(name = "课堂表现备注")
    private String notes;

    /** 记录人ID */
    @Excel(name = "记录人ID")
    private String recorderId;

    /** 记录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date recordTime;

    public void setPerformanceId(Long performanceId) 
    {
        this.performanceId = performanceId;
    }

    public Long getPerformanceId() 
    {
        return performanceId;
    }

    public void setClassId(String classId) 
    {
        this.classId = classId;
    }

    public String getClassId() 
    {
        return classId;
    }

    public void setStudentId(String studentId) 
    {
        this.studentId = studentId;
    }

    public String getStudentId() 
    {
        return studentId;
    }

    public void setSessionDate(Date sessionDate) 
    {
        this.sessionDate = sessionDate;
    }

    public Date getSessionDate() 
    {
        return sessionDate;
    }

    public void setAttendanceStatus(String attendanceStatus) 
    {
        this.attendanceStatus = attendanceStatus;
    }

    public String getAttendanceStatus() 
    {
        return attendanceStatus;
    }

    public void setQuestionCount(Long questionCount) 
    {
        this.questionCount = questionCount;
    }

    public Long getQuestionCount() 
    {
        return questionCount;
    }

    public void setCorrectCount(Long correctCount) 
    {
        this.correctCount = correctCount;
    }

    public Long getCorrectCount() 
    {
        return correctCount;
    }

    public void setParticipationScore(BigDecimal participationScore) 
    {
        this.participationScore = participationScore;
    }

    public BigDecimal getParticipationScore() 
    {
        return participationScore;
    }

    public void setNotes(String notes) 
    {
        this.notes = notes;
    }

    public String getNotes() 
    {
        return notes;
    }

    public void setRecorderId(String recorderId) 
    {
        this.recorderId = recorderId;
    }

    public String getRecorderId() 
    {
        return recorderId;
    }

    public void setRecordTime(Date recordTime) 
    {
        this.recordTime = recordTime;
    }

    public Date getRecordTime() 
    {
        return recordTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("performanceId", getPerformanceId())
            .append("classId", getClassId())
            .append("studentId", getStudentId())
            .append("sessionDate", getSessionDate())
            .append("attendanceStatus", getAttendanceStatus())
            .append("questionCount", getQuestionCount())
            .append("correctCount", getCorrectCount())
            .append("participationScore", getParticipationScore())
            .append("notes", getNotes())
            .append("recorderId", getRecorderId())
            .append("recordTime", getRecordTime())
            .toString();
    }
}
